// JavaScript Document
/**
 * Photo Wall for jQuery
 *
 * author: Harry
 * e-mail: harrycms@vip.qq.com
 * website: http://www.harrycms.cn
 *
 * Version: 0.1.0 alpha
 
 http://www.harrycms.cn/chinaprovinces/
 
 @Params:
 	province  省份存入目标
	city      市存入目标
	align     显示方式
 */
 
jQuery.fn.chinaprovinces = function(options){
	var _CityList = { Province: [
			{ Id: "BJ", Name:"北京", City: ["北京", "东城区", "西城区", "崇文区", "宣武区", "朝阳区", "丰台区", "石景山区", " 海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区", "怀柔区", "平谷区", "密云县", "延庆县", " 其他"] },
			{ Id: "SH", Name:"上海", City: ["黄浦区", "卢湾区", "徐汇区", "长宁区", "静安区", "普陀区", "闸北区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "金山区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明县", "其他" ] },
			{ Id: "TJ", Name:"天津", City: ["和平区", "河东区", "河西区", "南开区", "红桥区", "塘沽区", "汉沽区", "大港区", "西青区", "津南区", "武清区", "蓟县", "宁河县", "静海县", "其他" ] },
			{ Id: "CQ", Name:"重庆", City: ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "合川市", "永川市", "江津市", "南川市", "綦江县", "潼南县", "铜梁县", "大足县", "璧山县", "垫江县", "武隆县", "丰都县", "城口县", "开县", "巫溪县", "巫山县", "奉节县", "云阳县", "忠县", "石柱土家族自治县", "彭水苗族土家族自治县", "酉阳土家族苗族自治县", "秀山土家族苗族自治县", "其他" ] },
			{ Id: "AH", Name:"安徽", City: ["合肥市", "宿州市", "淮北市", "亳州市", "阜阳市", "蚌埠市", "淮南市", "滁州市", "马鞍山市", "芜湖市", "铜陵市", "安庆市", "黄山市", "六安市", "巢湖市", "池州市", "宣城市", "其他" ] },
			{ Id: "FJ", Name:"福建", City: ["福州市", "南平市", "莆田市", "三明市", "泉州市", "厦门市", "漳州市", "龙岩市", "宁德市", "其他" ] },
			{ Id: "GS", Name:"甘肃", City: ["兰州市 ", "嘉峪关市", "金昌市", "白银市", "天水市", "武威市", "酒泉市", "张掖市", "庆阳市", "平凉市", "定西市", "陇南市", "临夏回族自治州", "甘南藏族自治州", "其他" ] },
			{ Id: "GD", Name:"广东", City: ["广州市", "清远市市", "韶关市", "河源市", "梅州市", "潮州市", "汕头市", "揭阳市", "汕尾市", " 惠州市", "东莞市", "深圳市", "珠海市", "中山市", "江门市", "佛山市", "肇庆市", "云浮市", "阳江市", "茂名市", "湛江市", " 其他" ] },
		
			{ Id: "GX", Name:"广西", City: ["南宁市", "桂林市", "柳州市", "梧州市", "贵港市", "玉林市", "钦州市", "北海市", "防城港市", "崇左市", "百色市", "河池市", "来宾市", "贺州市", "其他" ] },
			{ Id: "GZ", Name:"贵州", City: ["贵阳市", "六盘水市", "遵义市", "安顺市", "毕节地区", "铜仁地区", "黔东南苗族侗族自治州", "黔南布依族苗族自治州", "黔西南布依族苗族自治州", "其他" ] },
			{ Id: "HI", Name:"海南", City: ["海口市", "三亚市", "其他" ] },
			{ Id: "HE", Name:"河北", City: ["石家庄市", "张家口市", "承德市", "秦皇岛市", "唐山市", "廊坊市", "衡水市", "沧州市", "邢台市", "邯郸市", "保定市", "其他" ] },
			{ Id: "HA", Name:"河南", City: ["郑州市", "三门峡市", "洛阳市", "焦作市", "新乡市", "鹤壁市", "安阳市", "濮阳市", "开封市", "商丘市", "许昌市", "漯河市", "平顶山市", "南阳市", "信阳市", "周口市", "驻马店市", "其他" ] },
			{ Id: "HL", Name: "黑龙江", City: ["哈尔滨市", "七台河市", "黑河市", "大庆市", "齐齐哈尔市", "伊春市", "佳木斯市", "双鸭山市", "鸡西市", "大兴安岭地区(加格达奇)", "牡丹江", "鹤岗市", "绥化市　", "其他"] },
			{ Id: "HB", Name:"湖北", City: ["武汉市", "十堰市", "襄樊市", "荆门市", "孝感市", "黄冈市", "鄂州市", "黄石市", "咸宁市", "荆州市", "宜昌市", "随州市", "恩施土家族苗族自治州", "仙桃市", "天门市", "潜江市", "神农架林区", "其他" ] },
			{ Id: "HN", Name:"湖南", City: ["长沙市", "张家界市", "常德市", "益阳市", "岳阳市", "株洲市", "湘潭市", "衡阳市", "郴州市", "永州市", "邵阳市", "怀化市", "娄底市", "湘西土家族苗族自治州", "其他" ] },
		
			{ Id: "JL", Name:"吉林", City: ["长春市", "白城市", "吉林市", "四平市", "辽源市", "通化市", "白山市", "延边朝鲜族自治州", "其他" ] },
			{ Id: "JS", Name:"江苏", City: ["南京市", "徐州市", "连云港市", "宿迁市", "淮安市", "盐城市", "扬州市", "泰州市", "南通市", "镇江市", "常州市", "无锡市", "苏州市", "其他" ] },
			{ Id: "JX", Name:"江西", City: ["南昌市", "九江市", "景德镇市", "鹰潭市", "新余市", "萍乡市", "赣州市", "上饶市", "抚州市", "宜春市", "吉安市", "其他" ] },
			{ Id: "LN", Name:"辽宁", City: ["沈阳市", "朝阳市", "阜新市", "铁岭市", "抚顺市", "丹东市", "本溪市", "辽阳市", "鞍山市", "大连市", "营口市", "盘锦市", "锦州市", "葫芦岛市", "其他" ] },
			{ Id: "NM", Name:"内蒙古", City: ["呼和浩特市", "包头市", "赤峰市", "呼伦贝尔市", "鄂尔多斯市", "乌兰察布市", "巴彦淖尔市", "兴安盟", "阿拉善盟", "锡林郭勒盟", "其他" ] },
			{ Id: "NX", Name:"宁夏", City: ["银川市", "石嘴山市", "吴忠市", "固原市", "中卫市", "其他" ] },
			{ Id: "SD", Name:"山东", City: ["济南市", "聊城市", "德州市", "东营市", "淄博市", "潍坊市", "烟台市", "威海市", "青岛市", "日照市", "临沂市", "枣庄市", "济宁市", "泰安市", "莱芜市", "滨州市", "菏泽市", "其他" ] },
			{ Id: "SX", Name:"山西", City: ["太原市", "朔州市", "大同市", "长治市", "晋城市", "忻州市", "晋中市", "临汾市", "吕梁市", "运城市", "其他" ] },
		
			{ Id: "SN", Name:"陕西", City: ["西安市", "延安市", "铜川市", "渭南市", "咸阳市", "宝鸡市", "汉中市", "安康市", "商洛市", "其他" ] },
			{ Id: "SC", Name:"四川", City: ["成都市", "广元市", "绵阳市", "德阳市", "南充市", "广安市", "遂宁市", "内江市", "乐山市", "自贡市", "泸州市", "宜宾市", "攀枝花市", "巴中市", "资阳市", "眉山市", "雅安", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州县", "其他" ] },
			{ Id: "QH", Name:"青海", City: ["西宁市", "海东地区", "海北藏族自治州", "黄南藏族自治州", "玉树藏族自治州", "海南藏族自治州", "果洛藏族自治州", "海西蒙古族藏族自治州", "其他" ] },
			{ Id: "TW", Name:"台湾", City: ["台湾", "其他"] },
			{ Id: "XZ", Name:"西藏", City: ["拉萨市", "那曲地区", "昌都地区", "林芝地区", "山南地区", "日喀则地区", "阿里地区", "其他" ] },
			{ Id: "XJ", Name:"新疆", City: ["乌鲁木齐市", "克拉玛依市", "喀什地区", "阿克苏地区", "和田地区", "吐鲁番地区", "哈密地区", "塔城地区", "阿勒泰地区", "克孜勒苏柯尔克孜自治州", "博尔塔拉蒙古自治州", "昌吉回族自治州伊犁哈萨克自治州", "巴音郭楞蒙古自治州", "河子市", "阿拉尔市", "五家渠市", "图木舒克市", "其他" ] },
			{ Id: "YN", Name:"云南", City: ["昆明市", "曲靖市", "玉溪市", "保山市", "昭通市", "丽江市", "普洱市", "临沧市", "宁德市", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "楚雄彝族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "大理白族自治州", "迪庆藏族自治州", "西双版纳傣族自治州", "其他" ] },
			{ Id: "ZJ", Name:"浙江", City: ["杭州市", "湖州市", "嘉兴市", "舟山市", "宁波市", "绍兴市", "衢州市", "金华市", "台州市", "温州市", "丽水市", "其他" ] },
		
			{ Id: "HK", Name:"香港", City: ["香港", "其他"] },
			{ Id: "MO", Name:"澳门", City: ["澳门", "其他"] }
			]};
		
		var settings = {
			province:false,
			city:false,
			align:'left',
			_m:Math.ceil(Math.random()*1000)
		};
		
		if(options) {
  			jQuery.extend(settings, options);
 		};
		

		
		this._init = function(){
			var str = '<select name="chinaprovinces_province'+settings._m+'" id="chinaprovinces_province'+settings._m+'"><option>请选择</option></select>&nbsp;<select name="chinaprovinces_city'+settings._m+'" id="chinaprovinces_city'+settings._m+'"><option>请选择</option></select>';
			var _provincevalue='',_cityvalue=''; 
			if (settings.province && settings.city){
 				_provincevalue = _this._getValue($("#"+settings.province));
  				_cityvalue = _this._getValue($("#"+settings.city));
					 
			}else{
				if (settings.align!='inline'){
					var __value = _this._getValue(_this);
					
					if (__value){
						var s = __value.split(' ');
						if (s.length>=2){
							_provincevalue = s[0];
							_cityvalue     = s[1];
						};
					};
				};
			};
			
			if (settings.align=='left'){
				_this.before(str);
			};
			
			if (settings.align=='right'){
				_this.after(str);
			};
			
			if (settings.align=='inline'){
				_this.html(str);
			};
			
			
			var _province = jQuery("#chinaprovinces_province"+settings._m);
			var _city     = jQuery("#chinaprovinces_city"+settings._m);
			
			jQuery.each(_CityList.Province, function(i, v) {
				 
				if (v.Name == _provincevalue){
					
					_province.append('<option selected="selected">' + v.Name + '</option>');
					
				}else{
					_province.append('<option>' + v.Name + '</option>');
				}
			}); 
 			
			_province.change(function(){
				var province = _province.find(':selected').text();
 				_this._potcity();
				_this._flashValue(province,'');
 			});
			
			_city.change(function(){
				var province = _province.find(':selected').text();
				var city = _city.find(':selected').text();
				if (city!='请选择'){
					_this._flashValue(province,city);
				};
			});
;			
			this._potcity(_cityvalue);
 			
		};
		
		this._potcity = function (m) {
 			 jQuery('#chinaprovinces_city'+settings._m).empty();
			 jQuery('#chinaprovinces_city'+settings._m).append('<option selected="selected">请选择</option>');
			 var name = $('#chinaprovinces_province'+settings._m).find(':selected').text();
			 jQuery.each(_CityList.Province, function(i, v) {
					if (v.Name == name) {
						$.each(v.City, function(i, v) { 
							if (v==m){
								jQuery('#chinaprovinces_city'+settings._m).append('<option selected="selected">' + v + '</option>');
							}else{
								jQuery('#chinaprovinces_city'+settings._m).append('<option>' + v + '</option>');
							};
						});
					};
			});
 		};
		
		
		this._flashValue = function(p,c){
			if (settings.province && settings.city){
				_this._setValue(jQuery("#"+settings.province),p);
 				_this._setValue(jQuery("#"+settings.city),c);
				//$("#"+settings.city).html(c);
			}else{
				if (settings.align!='inline'){
 					_this._setValue(_this,p+' '+c);
 				};
			};
		};
		
		this._setValue = function (obj,value){
			var tagName = obj.attr('tagName'); 
 			if (tagName=='INPUT' || tagName=='TEXTAREA'){
				obj.val(value);
			}else{
				obj.html(value);
			};
		};
		
		this._getValue = function (obj){
			var tagName = obj.attr('tagName'); 
			if (tagName=='INPUT' || tagName=='TEXTAREA'){
				return obj.val();
			}else{
				return obj.html();
			};
		}
		var _this = this;
		_this._init();
};